Skip to content

Add Copilot preference for a chat's custom instructions loading (from all projects or from referenced projects only)#136

Open
travkin79 wants to merge 1 commit intomicrosoft:mainfrom
travkin79:feature/select-custom-instructions
Open

Add Copilot preference for a chat's custom instructions loading (from all projects or from referenced projects only)#136
travkin79 wants to merge 1 commit intomicrosoft:mainfrom
travkin79:feature/select-custom-instructions

Conversation

@travkin79
Copy link
Copy Markdown

@travkin79 travkin79 commented May 5, 2026

This PR fixes issue #62 according to the comment #62 (comment)

The PR

  • introduces a new setting in the Copilot preferences with currently two options for loading custom instructions in Copilot chats:
    • Load instructions from all projects in the Eclipse workspace (new default, similar to previous behavior)
    • Load only instructions from projects derived from files / folders selected in the chat window (from the resources' parent projects)
  • if activated, derives projects only from given resources and passes the corresponding workspace folders to the language server (CopilotLanguageServerConnection), i.e.
    • if no files / folders are selected => no custom instructions are loaded at all
    • if a set of files / folders is selected in the chat window, only these resources' parent projects are checked for custom instructions. Custom instructions from other projects are ignored.
  • adds some unit tests

Preference page preview (new group highlighted):
image

@travkin79 travkin79 force-pushed the feature/select-custom-instructions branch from 7c28fcc to 8c9cc48 Compare May 5, 2026 14:14
@travkin79 travkin79 marked this pull request as ready for review May 5, 2026 16:06
Copilot AI review requested due to automatic review settings May 5, 2026 16:06
@travkin79
Copy link
Copy Markdown
Author

Hi @iloveeclipse,
I'm not sure, if it's OK if the custom copilot instructions are only loaded when starting a new chat. The set of loaded custom instructions doesn't change in an open chat window when the set of files in the context changes. I think, as a user, I would expect the set of custom instructions to change with the file selection in the chat. WDYT?

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new chat preference to control how project-level Copilot custom instructions are scoped when starting a chat, so Eclipse can avoid loading unrelated projects’ instruction files and reduce the prompt bloat behind issue #62.

Changes:

  • Added a persisted CustomInstructionsChatLoadScope preference with UI labels/defaults for chat instruction loading.
  • Derived workspace folders from selected/current resources in ChatView and threaded that list into conversation creation.
  • Added enum/helper tests and ResourceUtils coverage for workspace-folder derivation.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/utils/ResourceUtils.java Adds helper to derive distinct accessible workspace folders from selected resources.
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/messages.properties Adds user-facing labels for the new chat instruction scope preference.
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/Messages.java Exposes new NLS message keys.
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/CustomInstructionPreferencePage.java Adds the new combo box to the preferences UI and persists the selection.
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/CopilotPreferenceInitializer.java Sets the default chat instruction scope preference.
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/ChatView.java Derives scoped workspace folders before creating a new conversation.
com.microsoft.copilot.eclipse.ui.test/src/com/microsoft/copilot/eclipse/ui/utils/ResourceUtilsTest.java Adds tests for workspace-folder derivation behavior.
com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF Adds JUnit params dependency for new parameterized tests.
com.microsoft.copilot.eclipse.core/src/com/microsoft/copilot/eclipse/core/lsp/CopilotLanguageServerConnection.java Adds a createConversation overload that accepts scoped workspace folders.
com.microsoft.copilot.eclipse.core/src/com/microsoft/copilot/eclipse/core/Constants.java Defines the new preference key and enum values/default.
com.microsoft.copilot.eclipse.core.test/src/com/microsoft/copilot/eclipse/core/CustomInstructionsChatLoadScopeTest.java Adds enum serialization/deserialization tests.

@iloveeclipse
Copy link
Copy Markdown

I think, as a user, I would expect the set of custom instructions to change with the file selection in the chat. WDYT?

Correct.

@travkin79 travkin79 force-pushed the feature/select-custom-instructions branch 2 times, most recently from f90fdfc to 6728703 Compare May 5, 2026 16:56
@travkin79
Copy link
Copy Markdown
Author

Hi @iloveeclipse,

I think, as a user, I would expect the set of custom instructions to change with the file selection in the chat. WDYT?

Correct.

I've adapted the code to retrieve custom instructions from selected files on each conversation turn, i.e. each time a new prompt is sent to the LS.

@travkin79 travkin79 force-pushed the feature/select-custom-instructions branch 2 times, most recently from cf9a3ce to 66a07f1 Compare May 6, 2026 12:54
@travkin79 travkin79 force-pushed the feature/select-custom-instructions branch 2 times, most recently from b897069 to 54024bc Compare May 7, 2026 15:21
@travkin79 travkin79 force-pushed the feature/select-custom-instructions branch from 54024bc to 6fd6559 Compare May 7, 2026 15:56
@jdneo
Copy link
Copy Markdown
Member

jdneo commented May 8, 2026

I have no more comments.

@iloveeclipse could you help validate with this patch, your project setup will work as expected?

@iloveeclipse
Copy link
Copy Markdown

could you help validate with this patch, your project setup will work as expected?

I hope to get some time next week for that.

@jdneo
Copy link
Copy Markdown
Member

jdneo commented May 9, 2026

@travkin79 Let's wait for the confirmation, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants